home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 40 / Mac Magazin and MacEasy Magazine CD - Issue 40.iso / Software / Entwickler / Fantasm™5 Demo / Fantasm 5 / Anvil / Anvil.rsrc / EdHl_210_PPC ref < prev    next >
Text File  |  1997-11-09  |  24KB  |  718 lines

  1.                                     PowerPC Mnemonics
  2.                                     —————————————————
  3.  
  4. Notes:
  5. 1. Instructions marked with a "*" are 64 bit instructions.
  6.  
  7. 2. For description of operands, see notes at the end of this document.
  8.  
  9. 3. For a fuller description of each instruction see PowerFantasms' documentation.
  10.  
  11.  
  12.                              BRANCH PROCESSOR INSTRUCTIONS
  13.                              —————————————————————————————
  14.  
  15. Note: Not all possible permutations of branch mnemonics are shown here as there
  16. are 1024 possible combinations.
  17.  
  18. Name                   Mnemonics           Forms               Extended
  19. ————                   —————————           —————               ————————
  20. Branch                 b target            b,ba,bl,bla         None
  21.  
  22. Branch conditional     bc bo,bi,target     bc,bca,bcl,bcla     blt,ble,beq,bge
  23.                                                                bgt,bnl,bne,bng
  24.                                                                bso,bns,bun,bnu - eg. bne fred
  25.  
  26. Branch conditional     bclr bo,bi,target   bclr,bclrl          As bc with lr appended
  27. to link register
  28.  
  29. Branch conditional     bcctr bo,bi,target  bcctr,bcctrl        As bc with ctr appended
  30. to ctr register
  31.  
  32. System Call            sc                  sc                  None
  33.  
  34. Condition register     crand bt,ba,bb      crand               None
  35. AND
  36.  
  37. Condition register     cror  bt,ba,bb      cror                crmove bx,by
  38. OR
  39.  
  40. Condition register     crxor               crxor               crclr  bx
  41. XOR
  42.  
  43. Condition register     crnand bt,ba,bb     crnand              None
  44. NAND
  45.  
  46. Condition register     crnor bt,ba,bb      crnor               crnot bx,by
  47. NOR
  48.  
  49. Condition register     creqv bt,ba,bb      creqv               crset bx
  50. equivalent
  51.  
  52. Condition register     crandc bt,ba,bb     crandc              None
  53. AND with complement
  54.  
  55. Condition register     crorc bt,ba,bb      crorc               None
  56. OR with complement
  57.  
  58. Move condition         mcrf bf,bfa         mcrf                None
  59. register field
  60.  
  61.  
  62.                           FIXED POINT PROCESSOR INSTRUCTIONS
  63.                           ——————————————————————————————————
  64.  
  65. ——————————Fixed point load instructions
  66.           —————————————————————————————
  67.  
  68. Name                   Mnemonics           Forms               Extended
  69. ————                   —————————           —————               ————————
  70. Load byte              lbz rt,d(ra)        lbz                 None 
  71. and zero
  72.  
  73. Load byte and          lbzx rt,ra,rb       lbzx                None
  74. zero indexed
  75.  
  76. Load byte and          lbzu rt,d(ra)       lbzu                None
  77. zero with update
  78.  
  79. Load byte and zero     lbzux rt,ra,rb      lbzux               None
  80. with update indexed
  81.  
  82. Load halfword          lhz rt,d(ra)        lhz                 None 
  83. and zero
  84.  
  85. Load halfword and      lhzx rt,ra,rb       lhzx                None
  86. zero indexed
  87.  
  88. Load halfword and      lhzu rt,d(ra)       lhzu                None
  89. zero with update
  90.  
  91. Load halfword and zero lhzux rt,ra,rb      lhzux               None
  92. with update indexed
  93.  
  94. Load halfword          lha rt,d(ra)        lha                 None
  95. algebraic
  96.  
  97. Load halfword          lhax rt,ra,rb       lhax                None
  98. algebraic indexed
  99.  
  100. Load halfword          lhau rt,d(ra)       lhau                None
  101. algebraic with update
  102.  
  103. Load halfword          lhaux rt,ra,rb      lhaux               None
  104. algebraic with update indexed
  105.  
  106. Load word and          lwz rt,d(ra)        lwz                 None
  107. zero
  108.  
  109. Load word and          lwzx rt,ra,rb       lwzx                None
  110. zero indexed
  111.  
  112. Load word and          lwzu rt,d(ra)       lwzu                None
  113. zero with update
  114.  
  115. Load word and          lwzux rt,ra,rb      lwzux               None
  116. zero with update indexed
  117.  
  118. Load word              lwa rt,ds(ra)       lwa                 None
  119. algebraic
  120.  
  121. Load word              lwax rt,ra,rb       lwax                None 
  122. algebraic indexed
  123.  
  124. Load word algebraic    lwaux rt,ra,rb      lwaux               None
  125. with update indexed
  126.  
  127. Load doubleword*       ld rt,ds(ra)        ld                  None
  128.  
  129. Load doubleword        ldx rt,ra,rb        ldx                 None
  130. indexed*
  131.  
  132. Load doubleword        ldu rt,ds(ra)       ldu                 None
  133. with update*
  134.  
  135. Load doubleword        ldux rt,ra,rb       ldux                None
  136. with update indexed*
  137.  
  138.  
  139. ——————————Fixed point store instructions
  140.           ——————————————————————————————
  141.  
  142. Store byte             stb rs,d(ra)        stb                 None 
  143.  
  144. Store byte             stbx rs,ra,rb       stbx                None
  145. indexed
  146.  
  147. Store byte             stbu rs,d(ra)       stbu                None
  148. with update
  149.  
  150. Store byte             stbux rs,ra,rb      stbux               None
  151. with update indexed
  152.  
  153. Store halfword         sth rs,d(ra)        sth                 None 
  154.  
  155. Store halfword         sthx rs,ra,rb       sthx                None
  156. indexed
  157.  
  158. Store halfword         sthu rs,d(ra)       sthu                None
  159. with update
  160.  
  161. Store halfword         sthux rs,ra,rb      sthux               None
  162. with update indexed
  163.  
  164. Store word             stw rs,d(ra)        stw                 None
  165.  
  166. Store word indexed     stwx rs,ra,rb       stwx                None
  167.  
  168. Store word             stwu rs,d(ra)       stwu                None
  169. with update
  170.  
  171. Store word             stwux rs,ra,rb      stwux               None
  172. with update indexed
  173.  
  174. Store doubleword*      std st,ds(ra)       std                 None
  175.  
  176. Store doubleword       stdx rs,ra,rb       stdx                None
  177. indexed*
  178.  
  179. Store doubleword       stdu rs,ds(ra)      stdu                None
  180. with update*
  181.  
  182. Store doubleword       stdux rs,ra,rb      stdux               None
  183. with update indexed*
  184.  
  185.  
  186. ——————————Fixed point load and store with byte reversal instructions
  187.           ——————————————————————————————————————————————————————————
  188.  
  189. Load halfword byte     lhbrx rt,ra,rb      lhbrx               None
  190. reverse indexed
  191.  
  192. Load word byte         lwbrx rt,ra,rb      lwbrx               None
  193. reverse indexed
  194.  
  195. Store halfword byte    sthbrx rs,ra,rb     sthbrx              None
  196. reverse indexed
  197.  
  198. Store word byte        stwbrx rs,ra,rb     stwbrx              None
  199. reverse indexed
  200.  
  201.  
  202. ——————————Fixed point load and store multiple instructions
  203.           ————————————————————————————————————————————————
  204.  
  205. Load multiple word     lmw rt,d(ra)        lmw                 None
  206.  
  207. Store multiple word    stmw rs,d(ra)       stmw                None
  208.  
  209.  
  210. ——————————Fixed point move assist instructions
  211.           ————————————————————————————————————
  212.           
  213. Load string word       lswi rt,ra,nb       lswi                None
  214. immediate
  215.  
  216. Load string word       lswx rt,ra,rb       lswx                None
  217. indexed
  218.  
  219. Store string word      stswi rs,ra,nb      stswi               None
  220. immediate
  221.  
  222. Store string word      stswx rs,ra,rb      stswx               None
  223. indexed
  224.  
  225.  
  226. —————————Storage synchronisation functions
  227.          —————————————————————————————————
  228.  
  229. Load word and          lwarx rt,ra,rb      lwarx               None
  230. reserve indexed
  231.  
  232. Load doubleword and    ldarx rt,ra,rb      ldarx               None
  233. reserve indexed*
  234.  
  235. Store word conditional stwcx. rs,ra,rb     stwcx.              None
  236. indexed
  237.  
  238. Store doubelword       stdcx. rs,ra,rb     stdcx.              None 
  239. conditional indexed
  240.  
  241. Synchronise            sync                sync                None
  242.  
  243.  
  244. —————————Fixed point arithmetic
  245.          ——————————————————————
  246.  
  247. Add immediate          addi rt,ra,si       addi                li rx,value - load immediate
  248.                                                                la rx,disp(ry) - load address
  249.                                                                subi rx,ry,value - subtract immediate
  250.  
  251. Add immediate shifted  addis rt,ra,si      addis               lis rx,value - load immediate shifted
  252.                                                                subis rx,ry,value - subtract immediate shifted
  253.  
  254. Add                    add rt,ra,rb        add,add.,addo,addo. None
  255.  
  256. Subtract from          subf rt,ra,rb       subf,subf.,subfo    sub rx,ry,rz
  257.                                            subfo.
  258.  
  259. Add immediate          addic rt,ra,si      addic,addic.        subic[.] rx,ry,value
  260. carrying
  261.  
  262. Subtract from          subfic rt,ra,si     subfic              None
  263. immediate carrying
  264.  
  265. Add carrying           addc rt,ra,rb       addc,addc.,addco    None
  266.                                            addco.
  267.  
  268. Subtract from          subfc rt,ra,rb      subfc,subfc.,subfco subc rx,rz,ry
  269. carrying                                   subfco.
  270.  
  271. Add extended           adde rt,ra,rb       adde,adde.,addeo    None
  272.                                            addeo.
  273.  
  274. Subtract from extended subfe rt,ra,rb      subfe,subfe.        None
  275.                                            subfeo,subfeo.
  276.  
  277. Add to minus 1         addme rt,ra         addme,addme.,addmeo None
  278. extended                                   addmeo.
  279.  
  280. Subtract from minus    subfme rt,ra        subfme,subfme.      None
  281. 1 extended                                 subfmeo,subfmeo.
  282.  
  283. Add to zero extended   addze rt,ra         addze,addze.        None
  284.                                            addzeo,addzeo.
  285.  
  286. Subtract from zero     subfze rt,ra        subfze,subfze.      None
  287. extended                                   subfzeo,subfzeo.
  288.  
  289. Negate                 neg rt,ra           neg,neg.,nego,nego. None
  290.  
  291. Multiply low           mulli rt,ra,si      mulli               None
  292. immediate 
  293.  
  294. Mulitply low           mulld rt,ra,rb      mulld,mulld.        None
  295. doubleword*                                mulldo,mulldo.
  296.  
  297. Multiply low word      mullw rt,ra,rb      mullw,mullw.        None
  298.                                            mullwo,mullwo.
  299.  
  300. Mulitply high          mulhd rt,ra,rb      mulhd,mulhd.        None
  301. doubleword*
  302.  
  303. Multiply high word     mulhw rt,ra,rb      mulhw,mulhw.        None
  304.  
  305. Mulitply high          mulhdu rt,ra,rb     mulhdu,mulhdu.      None
  306. doubleword unsigned*
  307.  
  308. Multiply high word     mulhwu rt,ra,rb     mulhwu,mulhwu.      None
  309. unsigned
  310.  
  311. Divide doubleword*     divd rt,ra,rb       divd,divd.          None
  312.                                            divdo,divdo.
  313.  
  314. Divide word            divw rt,ra,rb       divw,divw.          None
  315.                                            divwo,divwo.
  316.  
  317. Divide doubleword      divdu rt,ra,rb      divdu,divdu.        None
  318. unsigned*                                  divduo,divduo.
  319.  
  320. Divide word            divwu rt,ra,rb      divwu,divwu.        None
  321. unsigned                                   divwuo,divwuo.
  322.  
  323.  
  324. ————————————Fixed point compare instructions
  325.             ————————————————————————————————
  326.  
  327. Compare immediate      cmpi bf,l,ra,si     cmpi                cmpwi rx,value      - word compare result in cr0
  328.                                                                cmpdi* cr2,rx,value - double word compare
  329.  
  330. Compare                cmp  bf,l,ra,rb     cmp                 cmpw rx,ry      - word compare result in cr0
  331.                                                                cmpd* cr5,rx,ry - double word compare
  332.  
  333. Compare logical        cmpli bf,l,ra,ui    cmpli               cmplwi rx,value     - word compare result in cr0
  334. immediate                                                      cmpldi* cr1,rx,value- double word compare result in cr1
  335.  
  336. Compare logical        cmpl  bf,l,ra,rb    cmpl                As cmpli
  337.  
  338.  
  339. ————————————Trap instructions
  340.             —————————————————
  341.  
  342. Note: The trap instructions can take the same range of extended mnemonics are the branch
  343. instructions - for example twgt, twlt etc
  344.  
  345. Trap doubleword*       tdi to,ra,si        tdi                 tdeqi
  346. immediate
  347.  
  348. Trap word immediate    twi to,ra,si        twi                 twnei
  349.  
  350. Trap doubleword*       td to,ra,rb         td                  tdne rx,ry
  351.  
  352. Trap word              tw to,ra,rb         tw                  tweq rx,ry
  353.  
  354.  
  355. ———————————Fixed point logical instructions
  356.            ————————————————————————————————
  357.            
  358. AND immediate          andi. ra,rs,ui      andi.               None
  359.  
  360. AND immediate shifted  andis. ra,rs,ui     andis.              None
  361.  
  362. OR immediate           ori   ra,rs,ui      ori                 nop - no operation
  363.  
  364. OR immediate shifted   oris  ra,rs,ui      oris                None
  365.  
  366. XOR immediate          xori  ra,rs,ui      xori                None
  367.  
  368. XOR immediate shifted  xoris ra,rs,ui      xoris               None
  369.  
  370. AND                    and ra,rs,rb        and, and.           None
  371.  
  372. OR                     or ra,rs,rb         or,or.              mr rx,ry - move register
  373.  
  374. XOR                    xor ra,rs,rb        xor,xor.            None
  375.  
  376. NAND                   nand ra,rs,rb       nand,nand.          None
  377.  
  378. NOR                    nor ra,rs,rb        nor,nor.            not rx,ry
  379.  
  380. Equivalent             eqv ra,rs,rb        eqv,eqv.            None
  381.  
  382. AND with complement    andc ra,rs,rb       andc,andc.          None
  383.  
  384. OR with complement     orc ra,rs,rb        orc,orc.            None
  385.  
  386. Extend sign byte       extsb ra,rs         extsb,extsb.        None
  387.  
  388. Extend sign halfword   extsh ra,rs         extsh,extsh.        None
  389.  
  390. Extend sign word*      extsw ra,rs         extsw,extsw.        None
  391.  
  392. Count leading zeros    cntlzd ra,rs        cntlzd,cntlzd.      None
  393. doubleword*
  394.  
  395. Count leading zeros    cntlzw ra,rs        cntlzw,cntlzw.      None
  396. word
  397.  
  398.  
  399. ————————————Fixed point rotate and shift instructions
  400.             —————————————————————————————————————————
  401.  
  402. Note: Rotate and shift instructions can have up to five operands, thus Fantasm provides
  403. all known 32 bit extended mnemonics as listed after the normal mnemonics.
  404.  
  405. Rotate left double     rldicl ra,rs,sh,mb  rldicl,rldicl.      None
  406. immediate then clear left*
  407.  
  408. Rotate left double     rldicr ra,rs,sh,me  rldicr,rldicr.      None
  409. immediate then clear right*
  410.  
  411. Rotate left double     rldic ra,rs,sh,mb   rldic,rldic.        None
  412. immediate then clear*
  413.  
  414. Rotate left word       rlwinm  ra,rs,sh,mb,me     [.]          See below
  415. immediate then AND with mask
  416.  
  417. Rotate left double     rldcl ra,rs,rb,mb   rldcl,rldcl.        None
  418. then clear left*
  419.  
  420. Rotate left double     rldcr ra,rs,rb,me   rldcr,rldcr.        None
  421. then clear right*
  422.  
  423. Rotate left word       rlwnm ra,rs,rb,mb,me       [.]          See below
  424. then and with mask
  425.  
  426. Rotate left double     rldimi ra,rs,sh,mb  rldimi,rldimi.      None
  427. immediate then mask insert*
  428.  
  429. Rotate left word       rlwimi ra,rs,sh,mb,me      [.]          See below
  430. immediate then mask insert
  431.  
  432. Shift left double*     sld ra,rs,rb        sld,sld.            None
  433.  
  434. Shift left word        slw ra,rs,rb        slw,slw.            See below
  435.  
  436. Shift right double*    srd ra,rs,rb        srd,srd.            None
  437.  
  438. Shift right word       srw ra,rs,rb        srw,srw.            See below
  439.  
  440. Shift right algebraic  sradi ra,rs,sh      sradi,sradi.        None
  441. double immediate*
  442.  
  443. Shift right algebraic  srawi ra,rs,sh      srawi,srawi.        See below
  444. word immediate
  445.  
  446. Shift right algebraic  srad ra,rs,sh       srad,srad           None
  447. double*
  448.  
  449. Shift right algebraic  sraw ra,rs,sh       sraw,sraw.          See below
  450. word
  451.  
  452. Extended 32 bit shifts/rotates
  453. ——————————————————————————————
  454. Note that In the following extended instructions:
  455.  
  456. Extract means: Select a field of n bits starting at bit position bin the source 
  457. register, right or left justify the field in the destination register and clear all the
  458. other bits of the destination register to zeros.
  459.  
  460. Insert means: Select a left or right justified field of n bits in the source register,
  461. and insert his field into the destination register at bit position b. Leave the other bits
  462. of the destination register unchanged. 
  463.  
  464. Rotate means: rotate the contents of a register right or left n bits.
  465.  
  466. Shift means: Shift the contents of the register right or left by n bits.
  467.  
  468. Clear means: Clear the leftmost or rightmost n bits of a register to zeros.
  469.  
  470. Clear left and shift left means: Clear the leftmost b bits of the register then
  471. shift the register left by n bits.
  472.  
  473.  
  474. Extract and left justify immediate       extlwi ra,rs,n,b 
  475. Extract and right justify immediate      extrwi ra,rs,n,b
  476. Insert from left immediate               inslwi ra,rs,n,b
  477. Insert from right immediate              insrwi ra,rs,n,b
  478. Rotate left immediate                    rotlwi ra,rs,n
  479. Rotate right immediate                   rotrwo ra,rs,n
  480. Rotate left                              rotlw ra,rs,b
  481. Shift left immediate                     slwi ra,rs,n
  482. Shift right immediate                    srwi ra,rs,n
  483. Clear left immediate                     clrlwi ra,rs,n
  484. Clear right immediate                    clrrwi ra,rs,n
  485. Clear left and shift immediate           clrlslwi ra,rs,b,n
  486.  
  487.  
  488.  
  489. ———————————Move to/from system registers
  490.            —————————————————————————————
  491.  
  492. Name                   Mnemonics           Forms               Extended
  493. ————                   —————————           —————               ————————
  494.  
  495. Move to Special        mtspr SPR,rs        mtspr               mtxer,mtlr,mtctr 
  496. Purpose Register
  497.  
  498. Move from Special      mfspr rs,SPR        mfspr               mfxer,mflr,mfctr
  499. Purpose Register
  500.  
  501. Move to condition      mtcrf fxm,rs        mtcrf               None
  502. register fields
  503.  
  504. Move to condition      mcrxr bf            mcrxr               None
  505. register from XER
  506.  
  507. Move from condition    mfcr rt             mfcr                None
  508. register
  509.  
  510.  
  511. PowerFantasm understands the following Special Purpose Registers (SPR's) - note the 
  512. definitions are in upper case only.
  513.  
  514. XER LR CTR
  515.  
  516. Priveledged SPRs: 
  517. DSISR DAR    DEC SDR1 SRR0 SRR1 SPRG0 SPRG1 SPRG2 SPRG3 ASR EAR TBL TBU
  518. PVR    *read only
  519. IBAT0U IBAT0L IBAT1U IBAT1L IBAT2U IBAT2L IBAT3U IBAT3L DBAT0U DBAT0L DBAT1U
  520. DBAT1L DBAT2U DBAT2L DBAT3U DBAT3L
  521.  
  522.  
  523.  
  524.                               FLOATING POINT PROCESSOR
  525.                               ————————————————————————
  526.  
  527. ——————————Floating point load instructions
  528.           ————————————————————————————————
  529.  
  530. Name                   Mnemonics           Forms               Extended
  531. ————                   —————————           —————               ————————
  532.  
  533. Load floating point    lfs ft,d(ra)        lfs                 None
  534. single
  535.  
  536. Load floating point    lfsx ft,ra,rb       lfsx                None
  537. single indexed
  538.  
  539. Load floating point    lfsu ft,d(ra)       lfsu                None
  540. single with update
  541.  
  542. Load floating point    lfsux ft,ra,rb      lfsux               None
  543. single with update indexed
  544.  
  545. Load floating point    lfd ft,d(ra)        lfd                 None
  546. double
  547.  
  548. Load floating point    lfdx ft,ra,rb       lfdx                None
  549. double indexed
  550.  
  551. Load floating point    lfdu ft,d(ra)       lfdu                None
  552. double with update
  553.  
  554. Load floating point    lfdux ft,ra,rb      lfsux               None
  555. double with update indexed
  556.  
  557.  
  558. ——————————Floating point store instructions
  559.           —————————————————————————————————
  560.  
  561. Name                   Mnemonics           Forms               Extended
  562. ————                   —————————           —————               ————————
  563.  
  564. Store floating point   stfs fs,d(ra)       stfs                None
  565. single
  566.  
  567. Store floating point   stfsx fs,ra,rb      stfsx               None
  568. single indexed
  569.  
  570. Store floating point   stfsu fs,d(ra)      stfsu               None
  571. single with update
  572.  
  573. Store floating point   stfsux fs,ra,rb     stfsux              None
  574. single with update indexed
  575.  
  576. Store floating point   stfd fs,d(ra)       stfd                None
  577. double
  578.  
  579. Store floating point   stfdx fs,ra,rb      stfdx               None
  580. double indexed
  581.  
  582. Store floating point   stfdu fs,d(ra)      stfdu               None
  583. double with update
  584.  
  585. Store floating point   stfdux fs,ra,rb     stdsux              None
  586. double with update indexed
  587.  
  588.  
  589. ——————————Floating point move instructions
  590.           ————————————————————————————————
  591.  
  592. Name                   Mnemonics           Forms               Extended
  593. ————                   —————————           —————               ————————
  594. Floating move register fmr ft,fb           fmr,fmr.            None
  595.  
  596. Floating negate        fneg ft,fb          fneg,fneg.          None
  597.  
  598. Floating absolute      fabs ft,fb          fabs,fabs.          None
  599.  
  600. Floating negative      fnabs ft,fb         fnabs,fnabs.        None
  601. absolute 
  602.  
  603.  
  604. ——————————Floating point arithmetic instructions
  605.           ——————————————————————————————————————
  606.  
  607. Name                   Mnemonics           Forms               Extended
  608. ————                   —————————           —————               ————————
  609. Floating add (single)  fadd ft,fa,fb       fadd, fadd.         None
  610.  
  611. Floating subtract      fsub ft,fa,fb       fsub,fsub.          None
  612. (single)
  613.  
  614. Floating multiply      fmul ft,fa,fb       fmul,fmul.          None
  615. (single)
  616.  
  617. Floating divide        fdiv ft,fa,fb       fdiv,fdiv.          None
  618. (single)
  619.  
  620. Floating multiply-add  fmadd ft,fa,fb,fc   fmadd,fmadd.        None
  621. (single)
  622.  
  623. Floating multiply-sub  fmsub ft,fa,fb,fc   fmsub,fmsub.        None
  624. (single)
  625.  
  626. Floating negative      fnmadd ft,fa,fb,fc  fnmadd,fnmadd.      None
  627. multiply-add (single)
  628.  
  629. Floating negative      fnmsub ft,fa,fb,fc  fnmsub,fnmsub.      None
  630. multiply-subtract (single)
  631.  
  632.  
  633. Floating round to      frsp ft,fb          frsp,frsp.          None
  634. single precision
  635.  
  636. Floating convert to    fctid ft,fb         fctid,fctid.        None
  637. doubleword*
  638.  
  639. Floating convert to    fctidz ft,fb        fctidz,fctidz.      None
  640. doubleword with round towards zero*
  641.  
  642. Floating convert to    fctiw ft,fb         fctiw,fctiw.        None
  643. integer word
  644.  
  645. Floating convert to    fctiwz ft,fb        fctiwz,fctiwz.      None
  646. integer word with round towards zero
  647.  
  648. Floating convert from  fcfid ft,fb         fcfid,fcfid.        None 
  649. integer doubleword*
  650.  
  651.  
  652. ——————————Floating point compare instructions
  653.           ———————————————————————————————————
  654.  
  655. Name                   Mnemonics           Forms               Extended
  656. ————                   —————————           —————               ————————
  657.  
  658. Floating compare       fcmpu bf,fa,fb      fcmpu               None 
  659. unordered
  660.  
  661. Floating compare       fcmpo bf,fa,fb      fcmpo               None
  662. ordered
  663.  
  664.  
  665. ——————————Floating point status and control register instructions
  666.           ———————————————————————————————————————————————————————
  667.  
  668. Name                   Mnemonics           Forms               Extended
  669. ————                   —————————           —————               ————————
  670.  
  671. Move from floating     mffs ft             mffs,mffs.          None
  672. point status and control register (FPSCR)
  673.  
  674. Move to condition      mcrfs bf,bfa        mcrfs               None
  675. register from FPSCR
  676.  
  677. Move to FPSCR field    mtfsfi bf,u         mtfsfi,mtfsfi.      None
  678. immediate
  679.  
  680. Move to FPSCR fields   mtfsf flm,fb        mtfsf,mtfsf.        None
  681.  
  682. Move to fpscr bit 0    mtfsb0 bit          mtfsb0,mtfdb0.      None
  683.  
  684. Move the FPSCR bit 1   mtfsb1 bit          mtfsb1,mtfsb1.      None
  685.  
  686.  
  687. ————————————————NOTES
  688.                 —————
  689.                 
  690. a and b     are source operands when used with "f" or "r"
  691. b             is a bit.
  692. ba and bb     are bits used to specify a bit in the CR as a source.
  693. bf             is a bitfield used to specify a CR field as a target.
  694. bfa         is a bitfield used to specify a CR or FPSCR field as a source
  695. bi             is a field used to specify a bit in the CR.
  696. bo             is a field used to specify the options in a branch conditional instruction.
  697. d             16 bit signed two's complement integer.
  698. f             is a floating point register
  699. fa             is an FPR (Floating Point Register) used as either source or destination.
  700. fb             is an FPR used as the source
  701. flm         is an 8 bit field mask.
  702. fs             is an FPR used as the source
  703. ft             is an FPR used as the target
  704. l             single bit field used to specify either 32 or 64 bit fixed point compares.
  705. li             24 bit signed two's complement integer
  706. mb             is mask begin
  707. me             is mask end
  708. nb             is number of bytes to move
  709. r             is a general purpose register (GPR)
  710. ra             is a GPR used as either source or destination.
  711. rb             is a GPR used as the source
  712. rs             is a GPR used as the source
  713. rt             is a GPR used as the target
  714. si             is a 16 bit signed integer
  715. t             is target
  716. to             is a field used to specify the conditions under which a trap will be taken.
  717. ui             is an immediate unsigned 16 bit quantity